<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <style>
        /* 填写样式 */
    </style>
</head>

<body>
    <!-- 填写标签 -->
    <!-- 
        根据包名，在指定空间中创建对象
        输入描述：
        namespace({a: {test: 1, b: 2}}, 'a.b.c.d')
        输出描述：
        {a: {test: 1, b: {c: {d: {}}}}}
     -->
    <script type="text/javascript">
        function namespace(oNamespace, sPackage) {
            const arr = sPackage.split('.');
            let o = oNamespace;
            for (let i = 0; i < arr.length; i++) {
                // 如果不是对象，则使它成为对象
                if (typeof o[arr[i]] != 'object') {
                    o[arr[i]] = {};
                }
                o = o[arr[i]];
            }
            return oNamespace;
        }

        // function namespace(oNamespace, sPackage) {
        //     let tmpWrap = oNamespace;
        //     sPackage.split('.').forEach(item => {
        //         tmpWrap = tmpWrap[item] = Object.assign({}, tmpWrap[item]);

        //     });
        //     return oNamespace;
        // }


        namespace({ a: { test: 1, b: 2 } }, 'a.b.c.d')
    </script>
</body>

</html>